7255B0	m_map_ovl.c
	pointer correction:	-8088DBD0

8088DBD0
SW	A0,0000 (SP)
ANDI	A0,A0,00FF
SLTI	AT,A0,0009
BNE	AT,R0,8088DC08
ADDIU	V1,R0,0001
ADDIU	AT,R0,003D
BEQ	A0,AT,8088DC08
ADDIU	AT,R0,003E
BEQ	A0,AT,8088DC08
ADDIU	AT,R0,0009
BEQ	A0,AT,8088DC08
ADDIU	AT,R0,000A
BNEL	A0,AT,8088DC10
OR	V0,V1,R0
//8088DC08:	return 0
OR	V1,R0,R0
//8088DC0C:	return
OR	V0,V1,R0
JR	RA
NOP

8088DC18
ADDIU	SP,SP,FFC0
SW	S8,0038 (SP)
SW	S2,0020 (SP)
OR	S2,A0,R0
OR	S8,A1,R0
SW	RA,003C (SP)
SW	S7,0034 (SP)
SW	S6,0030 (SP)
SW	S5,002C (SP)
SW	S4,0028 (SP)
SW	S3,0024 (SP)
SW	S1,001C (SP)
SW	S0,0018 (SP)
OR	S3,R0,R0
BLEZ	S8,8088DCAC
OR	A2,R0,R0
ANDI	V1,S8,0003
BEQ	V1,R0,8088DC84
OR	A0,V1,R0
SLL	T6,R0,0x2
ADDU	V0,S2,T6
ADDIU	V1,R0,0027
ADDIU	A2,A2,0001
SW	V1,0000 (V0)
BNE	A0,A2,8088DC70
ADDIU	V0,V0,0004
BEQ	A2,S8,8088DCAC
SLL	T7,A2,0x2
ADDU	V0,S2,T7
ADDIU	V1,R0,0027
ADDIU	A2,A2,0004
SW	V1,0004 (V0)
SW	V1,0008 (V0)
SW	V1,000C (V0)
ADDIU	V0,V0,0010
BNE	A2,S8,8088DC90
SW	V1,FFF0 (V0)
LUI	S5,8010
ADDIU	S5,S5,6814
ADDIU	S4,R0,0007
ADDIU	S7,R0,0006
ADDIU	S6,R0,0001
OR	S1,S6,R0
LW	T8,0000 (S5)
ADDU	T9,S4,T8
ADDU	T0,T9,S1
LBU	S0,0000 (T0)
JAL	8088DBD0
OR	A0,S0,R0
BNE	V0,S6,8088DCF0
ADDIU	S1,S1,0001
SW	S0,0000 (S2)
ADDIU	S2,S2,0004
ADDIU	S3,S3,0001
SLT	AT,S3,S8
BEQL	AT,R0,8088DD18
LW	RA,003C (SP)
BNEL	S1,S7,8088DCC8
LW	T8,0000 (S5)
ADDIU	S4,S4,0007
ADDIU	AT,R0,0031
BNEL	S4,AT,8088DCC4
OR	S1,S6,R0
LW	RA,003C (SP)
LW	S0,0018 (SP)
LW	S1,001C (SP)
LW	S2,0020 (SP)
LW	S3,0024 (SP)
LW	S4,0028 (SP)
LW	S5,002C (SP)
LW	S6,0030 (SP)
LW	S7,0034 (SP)
LW	S8,0038 (SP)
JR	RA
ADDIU	SP,SP,0040

8088DD44
ADDIU	SP,SP,FFE0
SW	RA,001C (SP)
SW	A1,0024 (SP)
LW	T6,0024 (SP)
LUI	T8,8089
LUI	T9,0600
SLL	T7,T6,0x2
ADDU	T8,T8,T7
LW	T8,FCE0 (T8)
ADDIU	T9,T9,0000
LUI	T1,018C
ADDIU	T1,T1,C000
LUI	A3,8089
ADDIU	T2,R0,0121
SUBU	T0,T8,T9
ADDU	A1,T0,T1
SW	T2,0010 (SP)
ADDIU	A3,A3,00C0
JAL	80026E10
ADDIU	A2,R0,0200
LW	RA,001C (SP)
ADDIU	SP,SP,0020
JR	RA
NOP

8088DDA4
ADDIU	SP,SP,FF40
SW	S4,0024 (SP)
OR	S4,A0,R0
SW	RA,002C (SP)
SW	S5,0028 (SP)
SW	S3,0020 (SP)
SW	S2,001C (SP)
SW	S1,0018 (SP)
SW	S0,0014 (SP)
ADDIU	A0,SP,0048
JAL	8088DC18
ADDIU	A1,R0,001E
OR	S1,S4,R0
ADDIU	S3,S4,0020
LUI	S4,8089
ADDIU	S4,S4,FE30
ADDIU	S0,SP,0048
OR	S2,R0,R0
ADDIU	S5,R0,3C00
LW	T6,0000 (S0)
OR	A0,S3,R0
ADDU	T7,S4,T6
LBU	T8,0000 (T7)
SB	T8,3C20 (S1)
JAL	8088DD44
LW	A1,0000 (S0)
ADDIU	S2,S2,0200
ADDIU	S1,S1,0001
ADDIU	S0,S0,0004
BNE	S2,S5,8088DDF0
ADDIU	S3,S3,0200
LW	RA,002C (SP)
LW	S0,0014 (SP)
LW	S1,0018 (SP)
LW	S2,001C (SP)
LW	S3,0020 (SP)
LW	S4,0024 (SP)
LW	S5,0028 (SP)
JR	RA
ADDIU	SP,SP,00C0

8088DE44
SLL	T6,A2,0x3
SUBU	T6,T6,A2
SLL	T6,T6,0x1
SLL	T7,A1,0x1
ADDU	T8,T6,T7
LUI	T9,8013
ADDU	T9,T9,T8
LHU	T9,0D48 (T9)
LW	T2,3C40 (A0)
SRL	T0,T9,0x2
SLL	T1,T0,0x2
SUBU	T1,T1,T0
SLL	T1,T1,0x1
ADDU	T3,T1,T2
LHU	V0,0002 (T3)
JR	RA
NOP

8088DE88
	accepts: A0=, A1=
ADDIU	SP,SP,FFB0
SW	S7,0034 (SP)
SW	S5,002C (SP)
ADDIU	S5,R0,0004
ADDIU	S7,R0,0001
SW	RA,003C (SP)
SW	S8,0038 (SP)
SW	S6,0030 (SP)
SW	S4,0028 (SP)
SW	S3,0024 (SP)
SW	S2,0020 (SP)
SW	S1,001C (SP)
SW	S0,0018 (SP)
SW	A1,0054 (SP)
OR	A2,A0,R0	;A2=A0: 
LUI	S1,8012
LUI	S8,8013
SH	S5,3D8C (A2)	;4->A2+3D8C: 
SH	S7,3D8E (A2)	;1->A2+3D8E: 
LUI	S4,8013
ADDIU	S1,S1,6EC0	;S1=80126EC0: 
ADDIU	S8,S8,0DB8	;S8=80130DB8: p->NPC data
OR	S3,R0,R0
ADDIU	S2,A2,3C44	;S2=A2+3C44: p->player map entries
ADDIU	S4,S4,6EA0	;S4=80136EA0: runtime variables
SW	A2,0050 (SP)	;SP+50=A2: 
OR	S6,R0,R0	;S6=0	init.count
//8088DEF4:
JAL	800B7F78
OR	A0,S1,R0
BNEL	V0,S7,8088DF60
ADDIU	S6,S6,0001
LW	T6,0138 (S4)
BNEL	S1,T6,8088DF24
LW	T7,0050 (SP)
JAL	8007D7BC
NOP
BNEL	V0,R0,8088DF60
ADDIU	S6,S6,0001
//8088DF20:	set player name entry
LW	T7,0050 (SP)	;T7=SP+50: [A0 f/caller]
SLL	T8,S3,0x2	;T8=count->offset
OR	A0,S2,R0	;A0=S2: p->target
ADDU	S0,T7,T8
ADDIU	S0,S0,3D7C	;S0=[A0]+3D7C+offset: p->player entries
JAL	800B77A4	;copy 6 bytes from A1 to A0
OR	A1,S1,R0	;A1=S1: p->source
LB	T9,0010 (S1)
ADDIU	T1,R0,0001
SB	T1,0007 (S2)	;1->entry+7: 
SB	R0,0008 (S2)	;0->entry+0: 
SB	T9,0006 (S2)
SW	S2,0000 (S0)	;S2->S0+0: p->entry -> point table of player entries
ADDIU	S3,S3,0001	;S3++	count++
ADDIU	S2,S2,0009	;S2+=9: p->next entry
//8088DF5C:
ADDIU	S6,S6,0001	;S6++	count.entries
BNE	S6,S5,8088DEF4	;loop if not 4
ADDIU	S1,S1,0BD0	;S1+=BD0: next player's data
SLTI	AT,S3,0004
BEQ	AT,R0,8088DFBC	;skip if count > 4
LW	T2,0050 (SP)
//8088DF74:	fill empty player slots with "vacant"
SLL	T3,S3,0x2
ADDU	S0,T2,T3
LUI	S1,8089
ADDIU	S1,S1,FE84	;S1=8088FE84: "Vacant"
ADDIU	S0,S0,3D7C	;S0=[A0]+3D7C+offset: p->player entries
ADDIU	S4,R0,FFFF
//8088DF8C:	write vacant for each missing player
OR	A0,S2,R0
JAL	800B77A4
OR	A1,S1,R0
ADDIU	T4,R0,0001
ADDIU	S3,S3,0001	;S3++	count++
SB	S4,0006 (S2)	;-1 ->S2+6: 
SB	T4,0007 (S2)	;1 ->S2+7: 
SLTI	AT,S3,0004
SW	S2,0000 (S0)	;S2->S0+0: p->entry -> point table of player entries
ADDIU	S2,S2,0009	;S2+=9: p->next entry
BNE	AT,R0,8088DF8C	;loop until four entries
ADDIU	S0,S0,0004	;S0+=4: next entry in pointer table
//8088DFBC:	add animals to list
LW	T5,0054 (SP)
LUI	AT,8000
LW	S2,0050 (SP)	;S2=SP+50: [A0 f/caller]
LW	T6,0028 (T5)
LUI	A0,0C01
ADDIU	A0,A0,C1E0	;A0=0C01C1E0
ADDU	T7,T6,AT
LUI	AT,8014
SW	T7,58D0 (AT)
JAL	8009ADA8	;convert 0X- offset type A0 to a rdram address
ADDIU	S2,S2,3C68	;S2=[A0]+3C68: p->animal map entries
SW	V0,0040 (SP)
//8088DFEC:
OR	S6,R0,R0
ADDIU	S5,R0,0003
ADDIU	S4,R0,0358
JAL	800A7AEC
OR	A0,S8,R0	;A0=S8: p->actor ID
BNE	V0,R0,8088E160
LW	S0,0040 (SP)
//8088E008:	copy name to entry
SLL	T8,S6,0x3
SUBU	T8,T8,S6
SLL	T8,T8,0x3	;T8=S6*38: 
LUI	AT,0001
LUI	T1,8012
ADDIU	T1,T1,6EA0	;T1=80126EA0: 
ADDU	T9,T8,AT	;T9=10000 + S6*38: 
ADDU	S3,T9,T1	;S3=80136EA0 + offset: runtime variables+offset: 
OR	A0,S2,R0	;A0=S2: p->target
OR	A1,S8,R0	;A1=S8: p->actor ID
JAL	800ACD18	;retrieve actor's name by ID
ADDIU	S1,S0,0002
JAL	800AD104
LBU	A0,000B (S8)
SB	V0,0006 (S2)
LUI	AT,42F0
MTC1	AT,F6
LWC1	F4,0168 (S3)
ADDIU	T2,R0,0001
ADDIU	S3,S8,04E0
C.LT.S	F4,F6
NOP
BC1FL	8088E074
SB	T2,0007 (S2)
BEQ	R0,R0,8088E074
SB	R0,0007 (S2)
//8088E070:
SB	T2,0007 (S2)
LW	A0,0050 (SP)
LBU	A1,0001 (S3)
JAL	8088DE44
LBU	A2,0002 (S3)
LW	T3,0040 (SP)
ANDI	A0,V0,FFFF
LHU	T4,0000 (T3)
BEQL	S4,T4,8088E104
LBU	T9,0002 (S1)
LHU	V1,0000 (S0)
BNEL	V1,A0,8088E0F4
LHU	V1,000C (S0)
ADDIU	A0,S0,0002
OR	S1,A0,R0
OR	V1,R0,R0
LBU	V0,0003 (S3)
//8088E0B4:
LBU	T5,0000 (S1)
BNEL	V0,T5,8088E0D8
ADDIU	V1,V1,0001
LBU	T7,0001 (S1)
LBU	T6,0004 (S3)
ADDIU	T8,T7,0001
BEQ	T6,T8,8088E0E0
NOP
//8088E0D4:
ADDIU	V1,V1,0001
BNE	V1,S5,8088E0B4
ADDIU	S1,S1,0003
//8088E0E0:
BNEL	V1,S5,8088E104
LBU	T9,0002 (S1)
BEQ	R0,R0,8088E100
OR	S1,A0,R0
LHU	V1,000C (S0)
ADDIU	S0,S0,000C
BNE	S4,V1,8088E09C
NOP
LBU	T9,0002 (S1)
SB	T9,0008 (S2)
LBU	T2,0002 (S3)
LBU	T5,0001 (S3)
LW	T1,0050 (SP)
SLL	T3,T2,0x2
SUBU	T3,T3,T2
SLL	T3,T3,0x3
ADDU	T3,T3,T2
SLL	T7,T5,0x2
SLL	T3,T3,0x2	;T3=T2*64: 
ADDU	T7,T7,T5
SLL	T7,T7,0x2	;T7=T5*14: 
ADDU	T4,T1,T3
ADDU	A2,T4,T7
LH	T6,3C88 (A2)	;T6=A2+3C88: 
ADDIU	A2,A2,3C78	;A2+=3C78: 
SLL	T8,T6,0x2
ADDU	T9,A2,T8
SW	S2,0000 (T9)
LH	T2,0010 (A2)
SH	R0,0012 (A2)
ADDIU	T1,T2,0001
SH	T1,0010 (A2)
ADDIU	S6,S6,0001
SLTI	AT,S6,000F
ADDIU	S8,S8,0528	;S8+=528: p->next NPC's data
BNE	AT,R0,8088DFF8	;loop 15 times.  15 NPCs?  Aegh...
ADDIU	S2,S2,0009
LW	A2,0050 (SP)
OR	S6,R0,R0
ADDIU	T0,R0,001E
ADDIU	A2,A2,3CF0	;A2=[A0]+3CF0: 
LH	T3,0012 (A2)	;T3=[A0]+3D8E, somehow: 
ADDIU	S6,S6,0001
BNE	T3,R0,8088E1F8
NOP
LH	V0,0010 (A2)
SLTI	AT,V0,0002
BNE	AT,R0,8088E1F8
ADDIU	A3,V0,FFFF
BLEZ	A3,8088E1F8
OR	V1,R0,R0
SLL	T5,V1,0x2
ADDU	V0,A2,T5
LW	A0,0000 (V0)
LBU	T4,0007 (A0)
BNEL	T4,R0,8088E1EC
ADDIU	V1,V1,0001
LW	A1,0004 (V0)
LBU	T7,0007 (A1)
BNEL	S7,T7,8088E1EC
ADDIU	V1,V1,0001
SW	A1,0000 (V0)
SW	A0,0004 (V0)
LH	A3,0010 (A2)
ADDIU	V1,R0,FFFF
ADDIU	A3,A3,FFFF
ADDIU	V1,V1,0001
SLT	AT,V1,A3
BNEL	AT,R0,8088E1B0
SLL	T5,V1,0x2
BNE	S6,T0,8088E184
ADDIU	A2,A2,0014
//8088E200:	return
LW	RA,003C (SP)
LW	S0,0018 (SP)
LW	S1,001C (SP)
LW	S2,0020 (SP)
LW	S3,0024 (SP)
LW	S4,0028 (SP)
LW	S5,002C (SP)
LW	S6,0030 (SP)
LW	S7,0034 (SP)
LW	S8,0038 (SP)
JR	RA
ADDIU	SP,SP,0050

8088E230
	accepts: A0=p->???
LUI	V1,8010
LW	V1,6818 (V1)
ADDIU	V0,A0,3CF0	;V0=A0+3CF0: 
OR	A1,R0,R0
ADDIU	T5,R0,0007
LUI	T4,0001
ADDIU	T3,R0,0006
ADDIU	T2,R0,0005
ADDIU	T1,R0,0004
ADDIU	T0,R0,0003
ADDIU	A3,R0,0002
ADDIU	V1,V1,0020
LH	T6,0010 (V0)
ADDIU	A1,A1,0001
ADDIU	A0,R0,0001
BGTZL	T6,8088E2F4
ADDIU	V0,V0,0014
LW	A2,0000 (V1)
ANDI	T7,A2,0002
BEQ	T7,R0,8088E290
ANDI	T8,A2,0008
SH	A3,0012 (V0)
BEQ	R0,R0,8088E2F0
SH	A3,0010 (V0)
//8088E290:
BEQ	T8,R0,8088E2A4
ANDI	T9,A2,0010
SH	T0,0012 (V0)
BEQ	R0,R0,8088E2F0
SH	A3,0010 (V0)
//8088E2A4:
BEQ	T9,R0,8088E2B8
ANDI	T6,A2,0004
SH	T1,0012 (V0)
BEQ	R0,R0,8088E2F0
SH	A3,0010 (V0)
//8088E2B8:
BEQ	T6,R0,8088E2CC
ANDI	T7,A2,0020
SH	T2,0012 (V0)
BEQ	R0,R0,8088E2F0
SH	A3,0010 (V0)
//8088E2CC:
BEQ	T7,R0,8088E2E0
AND	T8,A2,T4
SH	T3,0012 (V0)
BEQ	R0,R0,8088E2F0
SH	A3,0010 (V0)
//8088E2E0:
BEQL	T8,R0,8088E2F4
ADDIU	V0,V0,0014
SH	T5,0012 (V0)
SH	A3,0010 (V0)
//8088E2F0:
ADDIU	V0,V0,0014
ADDIU	V1,V1,0004
LH	T9,0010 (V0)
ADDIU	A0,A0,0002
BGTZL	T9,8088E388
LH	T8,0024 (V0)
LW	A2,0000 (V1)
ANDI	T6,A2,0002
BEQ	T6,R0,8088E324
ANDI	T7,A2,0008
SH	A3,0012 (V0)
BEQ	R0,R0,8088E384
SH	A3,0010 (V0)
//8088E324:
BEQ	T7,R0,8088E338
ANDI	T8,A2,0010
SH	T0,0012 (V0)
BEQ	R0,R0,8088E384
SH	A3,0010 (V0)
//8088E338:
BEQ	T8,R0,8088E34C
ANDI	T9,A2,0004
SH	T1,0012 (V0)
BEQ	R0,R0,8088E3884
SH	A3,0010 (V0)
//8088E34C:
BEQ	T9,R0,8088E360
ANDI	T6,A2,0020
SH	T2,0012 (V0)
BEQ	R0,R0,8088E384
SH	A3,0010 (V0)
//8088E360:
BEQ	T6,R0,8088E374
AND	T7,A2,T4
SH	T3,0012 (V0)
BEQ	R0,R0,8088E384
SH	A3,0010 (V0)
//8088E374:
BEQL	T7,R0,8088E388
LH	T8,0024 (V0)
SH	T5,0012 (V0)
SH	A3,0010 (V0)
//8088E384:
LH	T8,0024 (V0)
ADDIU	V0,V0,0014
ADDIU	V1,V1,0004
BGTZL	T8,8088E418
ADDIU	V0,V0,0014
LW	A2,0000 (V1)
ANDI	T9,A2,0002
BEQ	T9,R0,8088E3B4
ANDI	T6,A2,0008
SH	A3,0012 (V0)
BEQ	R0,R0,8088E414
SH	A3,0010 (V0)
//8088E3B4:
BEQ	T6,R0,8088E3C8
ANDI	T7,A2,0010
SH	T0,0012 (V0)
BEQ	R0,R0,8088E414
SH	A3,0010 (V0)
//8088E3C8:
BEQ	T7,R0,8088E3DC
ANDI	T8,A2,0004
SH	T1,0012 (V0)
BEQ	R0,R0,8088E414
SH	A3,0010 (V0)
//8088E3DC:
BEQ	T8,R0,8088E3F0
ANDI	T9,A2,0020
SH	T2,0012 (V0)
BEQ	R0,R0,8088E414
SH	A3,0010 (V0)
//8088E3F0:
BEQ	T9,R0,8088E404
AND	T6,A2,T4
SH	T3,0012 (V0)
BEQ	R0,R0,8088E414
SH	A3,0010 (V0)
//8088E404:
BEQL	T6,R0,8088E418
ADDIU	V0,V0,0014
SH	T5,0012 (V0)
SH	A3,0010 (V0)
//8088E414:
ADDIU	V0,V0,0014
BNE	A0,T2,8088E2F8
ADDIU	V1,V1,0004
BNE	A1,T3,8088E260
ADDIU	V1,V1,0008
//8088E428:	return
JR	RA
NOP

8088E430
	accepts: A0=p->???, A1=p->???
ADDIU	SP,SP,FFB0
SW	S0,0020 (SP)
OR	S0,A0,R0	;S0=A0: p->???
SW	RA,0024 (SP)
SW	A1,0054 (SP)	;SP+54=A1: p->???
ADDIU	V1,S0,3CF0	;V1=S0+3CF0: 
LUI	A0,8011
LW	A0,EF90 (A0)	;A0=8010EF90: p->manager
JAL	800B1C84	;V0=A0+1C90: p->overlay table
SW	V1,002C (SP)	;SP+2C=S0+3CF0: 
//8088E458:
LUI	A0,8013
ADDIU	A0,A0,6EA0	;A0=80136EA0: runtime variables
LBU	T6,0001 (A0)	;T6=runtime+1: 
OR	V1,V0,R0	;V1=V0: p->overlay table
BEQL	T6,R0,8088E4C4
LW	T2,0028 (V1)
LW	T7,0754 (A0)
ADDIU	A0,SP,0030	;A0=SP+30: p->float buffer
LUI	A1,8013
BEQL	T7,R0,8088E4C4
LW	T2,0028 (V1)
//8088E484:
JAL	8009A0C4	;convert three shorts at A1 to floats at A0
ADDIU	A1,A1,7610	;A1=80137610: 
ADDIU	T8,SP,0030	;T8=SP+30: float buffer
LW	T0,0000 (T8)	;T0=float+0: 
ADDIU	A0,SP,0040	;A0=SP+40: p->
ADDIU	A1,SP,003C	;A1=SP+3C: p->
SW	T0,0008 (SP)	;SP+8=T0: 
LW	A3,0004 (T8)	;A3=float+4: 
LW	A2,0008 (SP)	;A2=T0
SW	A3,000C (SP)	;SP+C=A3: 
LW	T0,0008 (T8)	;T0=float+8: 
JAL	80088710
SW	T0,0010 (SP)	;SP+10=T0: 
BEQ	R0,R0,8088E4F0
LW	T3,0040 (SP)
//8088E4C4:	use preset values
LW	T2,0028 (V1)
ADDIU	A0,SP,0040
ADDIU	A1,SP,003C
SW	T2,0008 (SP)
LW	A3,002C (V1)
LW	A2,0008 (SP)
SW	A3,000C (SP)
LW	T2,0030 (V1)
JAL	80088710
SW	T2,0010 (SP)
//8088E4EC:
LW	T3,0040 (SP)
LUI	AT,41B0
MTC1	AT,F12
ADDIU	T4,T3,FFFF
SB	T4,0002 (S0)
LW	T5,003C (SP)
ANDI	V0,T4,00FF
MTC1	V0,F4
ADDIU	T6,T5,FFFF
ANDI	V1,T6,00FF
SB	T6,0003 (S0)
SB	V0,0000 (S0)
SB	V1,0001 (S0)
BGEZ	V0,8088E534
CVT.S.W	F6,F4
LUI	AT,4F80
MTC1	AT,F8
NOP
//8088E534:
ADD.S	F6,F6,F8
MUL.S	F0,F6,F12
MTC1	V1,F10
LUI	AT,4F80
CVT.S.W	F16,F10
BGEZ	V1,8088E558
SWC1	F0,0004 (S0)
MTC1	AT,F18
NOP
//8088E558:
ADD.S	F16,F16,F18
NEG.S	F4,F16
SW	R0,0014 (S0)
MUL.S	F2,F4,F12
SWC1	F0,000C (S0)
OR	A0,S0,R0	;A0=S0: p->???
SWC1	F2,0008 (S0)
JAL	8088DDA4
SWC1	F2,0010 (S0)
LW	V0,002C (SP)
ADDIU	V1,R0,0002
ADDIU	A0,R0,001E
SH	R0,0010 (V0)
SH	R0,0024 (V0)
//8088E590:
ADDIU	V0,V0,0028
ADDIU	V1,V1,0004
SH	R0,0024 (V0)
SH	R0,0038 (V0)
SH	R0,004C (V0)
ADDIU	V0,V0,0050
BNE	V1,A0,8088E590
SH	R0,FFC0 (V0)
//8088E5B0:
OR	A0,S0,R0	;A0=S0: 
JAL	8088DE88
LW	A1,0054 (SP)
JAL	8088E230
OR	A0,S0,R0	;A0=S0: 
LUI	A0,8013
ADDIU	A0,A0,9E00	;A0=80129E00: p->town.name
ADDIU	A1,R0,0006	;A1=max strlen 6
JAL	8009C1C0	;returns V0=actual strlen
ADDIU	A2,R0,0020	;A2=20: ' '
SB	V0,3F4E (S0)	;V0->S0+3F4E: save town strlen
//8088E5D8:	return
LW	RA,0024 (SP)
LW	S0,0020 (SP)
ADDIU	SP,SP,0050
JR	RA
NOP

8088E5EC
ADDIU	SP,SP,FFE8
SW	RA,0014 (SP)
LW	T6,002C (A0)
LUI	T9,0001
ADDU	T9,T9,T6
LW	T9,06A8 (T9)
JALR	RA,T9
NOP
LW	RA,0014 (SP)
ADDIU	SP,SP,0018
JR	RA
NOP

8088E61C
ADDIU	SP,SP,FFD8
SW	RA,0014 (SP)
SW	A1,002C (SP)
LW	A2,002C (A0)
LUI	AT,0001
OR	A3,R0,R0
ADDU	A2,A2,AT
LW	V0,068C (A2)
LW	V1,0808 (A2)
LW	T7,002C (SP)
ANDI	T6,V0,D000
BNEL	T6,R0,8088E670
SW	V1,0020 (SP)
LW	T8,0038 (T7)
ADDIU	AT,R0,0001
ANDI	T9,V0,0010
BNE	T8,AT,8088E69C
ANDI	T0,V0,0002
BEQ	T9,R0,8088E69C
NOP
//8088E66C:
SW	V1,0020 (SP)
SW	A3,001C (SP)
LW	T9,06B0 (A2)
LW	A0,002C (SP)
ADDIU	A1,R0,0004
JALR	RA,T9
NOP
//8088E688:
JAL	800D1A9C
ADDIU	A0,R0,0024
LW	V1,0020 (SP)
BEQ	R0,R0,8088E778
LW	A3,001C (SP)
//8088E69C:
BEQ	T0,R0,8088E6D4
ANDI	T2,V0,0004
LBU	V0,0000 (V1)
LUI	AT,41B0
BLEZL	V0,8088E77C
ADDIU	AT,R0,0001
LWC1	F4,000C (V1)
MTC1	AT,F6
ADDIU	T1,V0,FFFF
SB	T1,0000 (V1)
SUB.S	F8,F4,F6
ADDIU	A3,R0,0001
BEQ	R0,R0,8088E778
SWC1	F8,000C (V1)
//8088E6D4:
BEQ	T2,R0,8088E70C
ANDI	T4,V0,0008
LBU	V0,0001 (V1)
SLTI	AT,V0,0005
BEQ	AT,R0,8088E778
LUI	AT,41B0
MTC1	AT,F16
LWC1	F10,0010 (V1)
ADDIU	T3,V0,0001
SB	T3,0001 (V1)
SUB.S	F18,F10,F16
ADDIU	A3,R0,0001
BEQ	R0,R0,8088E778
SWC1	F18,0010 (V1)
//8088E70C:
BEQ	T4,R0,8088E744
ANDI	T6,V0,0001
LBU	V0,0001 (V1)
LUI	AT,41B0
BLEZL	V0,8088E77C
ADDIU	AT,R0,0001
LWC1	F4,0010 (V1)
MTC1	AT,F6
ADDIU	T5,V0,FFFF
SB	T5,0001 (V1)
ADD.S	F8,F4,F6
ADDIU	A3,R0,0001
BEQ	R0,R0,8088E778
SWC1	F8,0010 (V1)
//8088E744:
BEQL	T6,R0,8088E77C
ADDIU	AT,R0,0001
LBU	V0,0000 (V1)
SLTI	AT,V0,0004
BEQ	AT,R0,8088E778
LUI	AT,41B0
MTC1	AT,F16
LWC1	F10,000C (V1)
ADDIU	T7,V0,0001
SB	T7,0000 (V1)
ADD.S	F18,F10,F16
ADDIU	A3,R0,0001
SWC1	F18,000C (V1)
//8088E778:
ADDIU	AT,R0,0001
BNE	A3,AT,8088E79C
LW	T9,002C (SP)
ADDIU	T8,R0,0002
SW	T8,0004 (T9)
SW	V1,0020 (SP)
JAL	800D1A9C
ADDIU	A0,R0,0001
LW	V1,0020 (SP)
//8088E79C:
LW	T0,0014 (V1)
ADDIU	T1,T0,0001
SLTI	AT,T1,0012
SW	T1,0014 (V1)
BNE	AT,R0,8088E7CC
OR	V0,T1,R0
ADDIU	AT,R0,0012
DIV	T1,AT
MFHI	T2
SW	T2,0014 (V1)
BEQ	R0,R0,8088E7DC
LW	RA,0014 (SP)
//8088E7CC:
BGEZL	V0,8088E7DC
LW	RA,0014 (SP)
SW	R0,0014 (V1)
//8088E7D8:	return
LW	RA,0014 (SP)
ADDIU	SP,SP,0028
JR	RA
NOP

8088E7E8
ADDIU	SP,SP,FFD8
SW	RA,001C (SP)
SW	A0,0028 (SP)
SW	A1,002C (SP)
LW	T6,0028 (SP)
LUI	V0,0001
LUI	AT,8089
LW	T7,002C (T6)
LWC1	F4,00D0 (AT)
LUI	A2,3F33
ADDU	V0,V0,T7
LW	V0,0808 (V0)
ORI	A2,A2,3333
LUI	A3,4198
LW	A1,000C (V0)
SWC1	F4,0010 (SP)
SW	V0,0024 (SP)
JAL	8009A570
ADDIU	A0,V0,0004
LW	V0,0024 (SP)
LUI	AT,8089
LWC1	F6,00D4 (AT)
SWC1	F0,0020 (SP)
LUI	A2,3F33
LW	A1,0010 (V0)
ORI	A2,A2,3333
LUI	A3,4198
ADDIU	A0,V0,0008
JAL	8009A570
SWC1	F6,0010 (SP)
MOV.S	F2,F0
LWC1	F0,0020 (SP)
LUI	AT,8089
LWC1	F12,00D8 (AT)
ABS.S	F0,F0
C.LT.S	F0,F12
NOP
BC1FL	8088E8A4
LW	RA,001C (SP)
ABS.S	F0,F2
LW	T9,002C (SP)
C.LT.S	F0,F12
NOP
BC1F	8088E8A0
ADDIU	T8,R0,0001
SW	T8,0004 (T9)
//8088E8A0:	return
LW	RA,001C (SP)
ADDIU	SP,SP,0028
JR	RA
NOP

8088E8B0
ADDIU	SP,SP,FFE8
SW	RA,0014 (SP)
LW	T6,002C (A0)
LUI	T9,0001
ADDU	T9,T9,T6	;T9=T6+0x10000: 
LW	T9,06AC (T9)
JALR	RA,T9
NOP
LW	RA,0014 (SP)
ADDIU	SP,SP,0018
JR	RA
NOP

8088E8E0
ADDIU	SP,SP,FFE0
SW	RA,0014 (SP)
LW	A1,002C (A0)
LUI	AT,0001
ORI	AT,AT,01F0	;AT=0x101F0
ADDU	A1,A1,AT
SW	A1,001C (SP)
SW	A0,0020 (SP)
LW	T9,000C (A1)
JALR	RA,T9
NOP
LW	A1,001C (SP)
LUI	T9,8089
LW	A0,0020 (SP)
LW	T6,0004 (A1)
SLL	T7,T6,0x2
ADDU	T9,T9,T7
LW	T9,FE8C (T9)	;T9=8088FE8C+offset: p->handler
JALR	RA,T9
NOP
LW	RA,0014 (SP)
ADDIU	SP,SP,0020
JR	RA
NOP

8088E940	convert offsets in binary to pointers
	accepts: A0=p->???
ADDIU	SP,SP,FFD8
SW	RA,0024 (SP)
SW	S2,0020 (SP)
SW	S1,001C (SP)
SW	S0,0018 (SP)
LW	T6,0028 (A0)	;T6=A0+28: hardware offset
LUI	AT,8000
LUI	S0,8089
ADDU	T7,T6,AT	;T7=hardware->rdram offset
LUI	AT,8014
SW	T7,58D0 (AT)	;T7->801458D0: 
ADDIU	S0,S0,002C	;S0=8089002C: +245C
OR	S1,R0,R0	;S1=0	init.count
ADDIU	S2,R0,000B
//8088E978:	loop to convert offsets into pointers
JAL	8009ADA8	;convert 0X- offset type A0 to a rdram address
LW	A0,0000 (S0)	;A0=bin+245C: 0C00A960
ADDIU	S1,S1,0001
ADDIU	S0,S0,0004	;S0=80890030: +2460	0C00B060
BNE	S1,S2,8088E978	;loop 12 times
SW	V0,FFFC (S0)	;V0->bin+offset: offset->pointer
//8088E990:	convert offsets to DL pointers
LUI	A0,0C00
JAL	8009ADA8	;convert 0X- offset type A0 to a rdram address
ADDIU	A0,A0,73B8	;A0=0C0073B8: cloud corner 1 DL
LUI	AT,8089
LUI	A0,0C00
SW	V0,4058 (AT)	;V0->80894058: cloud corner 1 DL
JAL	8009ADA8	;convert 0X- offset type A0 to a rdram address
ADDIU	A0,A0,1510	;A0=0C001510: cloud corner 2 DL
LUI	AT,8089
LUI	A0,0C00
SW	V0,4054 (AT)	;V0->80894054: cloud corner 2 DL
JAL	8009ADA8	;convert 0X- offset type A0 to a rdram address
ADDIU	A0,A0,15C0	;A0=0C0015C0: cloud corner 3 UL
LUI	AT,8089
LUI	A0,0C00
SW	V0,4050 (AT)	;V0->80894050: cloud corner 3 UL
JAL	8009ADA8	;convert 0X- offset type A0 to a rdram address
ADDIU	A0,A0,1620	;A0=0C001620: cloud corner 4 UL
LUI	AT,8089
LUI	A0,0C00
SW	V0,404C (AT)	;V0->8089404C: cloud corner 4 UL
JAL	8009ADA8	;convert 0X- offset type A0 to a rdram address
ADDIU	A0,A0,1680	;A0=0C001680: cloud corner 5 UL
LUI	AT,8089
LUI	A0,0C00
SW	V0,4048 (AT)	;V0->80894048: cloud corner 5 UL
JAL	8009ADA8	;convert 0X- offset type A0 to a rdram address
ADDIU	A0,A0,7A40	;A0=0C007A40: colour 1 DL
LUI	AT,8089
LUI	A0,0C00
SW	V0,405C (AT)	;V0->8089405C: colour 1 DL
JAL	8009ADA8	;convert 0X- offset type A0 to a rdram address
ADDIU	A0,A0,7AD0	;A0=0C007AD0: colour 8 DL
LUI	AT,8089
SW	V0,4060 (AT)	;V0->80894060: colour 8 DL
//8088EA1C:	return
LW	RA,0024 (SP)
LW	S0,0018 (SP)
LW	S1,001C (SP)
LW	S2,0020 (SP)
JR	RA
ADDIU	SP,SP,0028

8088EA34
	accepts: A0=p->???
LH	V0,0012 (A0)
ADDIU	AT,R0,0001
BEQ	V0,R0,8088EA4C	;if V0 not set, return A0+10: 
NOP
BNE	V0,AT,8088EA54	;if V0 set, return 1
ADDIU	V1,R0,0001
//8088EA4C:
BEQ	R0,R0,8088EA54	;return A0+10: 
LH	V1,0010 (A0)
//8088EA54:
OR	V0,V1,R0
JR	RA
NOP

8088EA60
ADDIU	SP,SP,FF40
MTC1	A2,F14
MTC1	A3,F12
SW	RA,006C (SP)
SW	S8,0068 (SP)
SW	S7,0064 (SP)
SW	S6,0060 (SP)
SW	S5,005C (SP)
SW	S4,0058 (SP)
SW	S3,0054 (SP)
SW	S2,0050 (SP)
SW	S1,004C (SP)
SW	S0,0048 (SP)
SDC1	F30,0040 (SP)
SDC1	F28,0038 (SP)
SDC1	F26,0030 (SP)
SDC1	F24,0028 (SP)
SDC1	F22,0020 (SP)
SDC1	F20,0018 (SP)
SW	A0,00C0 (SP)
SW	A1,00C4 (SP)
LUI	AT,4238
MTC1	AT,F4
LUI	AT,4130
LW	S6,00C4 (SP)
ADD.S	F0,F12,F4
MTC1	AT,F6
LW	T6,00C0 (SP)
ADDIU	S6,S6,3CF0
ADD.S	F28,F0,F6
LW	S1,0298 (T6)
LUI	S5,DE00
OR	V0,S1,R0
LUI	T7,0C00
ADDIU	T7,T7,6F50
SW	T7,0004 (V0)
SW	S5,0000 (V0)
ADDIU	S1,S1,0008
LUI	AT,4118
MTC1	AT,F8
LUI	AT,4130
MTC1	AT,F16
ADD.S	F10,F14,F8
LUI	AT,41B0
MTC1	AT,F30
LUI	AT,430C
MTC1	AT,F26
SUB.S	F18,F10,F16
LUI	AT,3F80
MTC1	AT,F24
LUI	AT,4180
LUI	S8,8089
LUI	S7,8089
MTC1	AT,F20
ADDIU	S7,S7,0000
ADDIU	S8,S8,000C
SWC1	F18,0074 (SP)
SW	R0,00AC (SP)
SWC1	F0,0078 (SP)
ADDIU	S4,R0,0003
LWC1	F22,0074 (SP)
SW	R0,00A8 (SP)
LH	T8,0012 (S6)
BNEL	T8,R0,8088EC78
LW	T1,00A8 (SP)
LH	T9,0010 (S6)
OR	S2,S6,R0
OR	S3,R0,R0
BLEZL	T9,8088EC78
LW	T1,00A8 (SP)
MFC1	A2,F24
MOV.S	F12,F20
MOV.S	F14,F20
JAL	800E041C	;another matrix conversion thingie
OR	A3,R0,R0
LW	T0,0000 (S2)
MFC1	A2,F26
ADDIU	A3,R0,0001
LBU	V0,0008 (T0)
DIV	V0,S4
MFHI	T1
MFLO	T4
SLL	T5,T4,0x2
SLL	T2,T1,0x2
ADDU	T3,S7,T2
ADDU	T6,S8,T5
LWC1	F6,0000 (T6)
LWC1	F4,0000 (T3)
BNE	S4,R0,8088EBCC
NOP
BREAK	00001C00
ADDIU	AT,R0,FFFF
BNE	S4,AT,8088EBE4
LUI	AT,8000
BNE	V0,AT,8088EBE4
NOP
BREAK	00001800
ADD.S	F14,F6,F28
JAL	800E0314	;does a conversion on the current matrix
ADD.S	F12,F4,F22
LUI	T7,DA38
ORI	T7,T7,0003
OR	S0,S1,R0
SW	T7,0000 (S0)
LW	A0,00C0 (SP)
JAL	800E13C4	;subtracts 0x40 from pointer at A0
ADDIU	S1,S1,0008
SW	V0,0004 (S0)
LW	T8,0000 (S2)
ADDIU	AT,R0,0001
LUI	V1,0C00
LBU	T9,0007 (T8)
ADDIU	V1,V1,0FB0
OR	V0,S1,R0
BNE	T9,AT,8088EC50
NOP
LUI	V1,0C00
ADDIU	V1,V1,06C8
OR	V0,S1,R0
SW	S5,0000 (V0)
SW	V1,0004 (V0)
ADDIU	S1,S1,0008
BEQ	R0,R0,8088EC60
LH	T0,0010 (S6)
ADDIU	S1,S1,0008
SW	S5,0000 (V0)
SW	V1,0004 (V0)
LH	T0,0010 (S6)
ADDIU	S3,S3,0001
ADDIU	S2,S2,0004
SLT	AT,S3,T0
BNEL	AT,R0,8088EB7C
MFC1	A2,F24
LW	T1,00A8 (SP)
ADDIU	AT,R0,0005
ADD.S	F22,F22,F30
ADDIU	T2,T1,0001
SW	T2,00A8 (SP)
BNE	T2,AT,8088EB58
ADDIU	S6,S6,0014
LW	T3,00AC (SP)
ADDIU	AT,R0,0006
SUB.S	F28,F28,F30
ADDIU	T4,T3,0001
BNE	T4,AT,8088EB50
SW	T4,00AC (SP)
MFC1	A2,F24
MOV.S	F12,F20
MOV.S	F14,F20
JAL	800E041C	;another matrix conversion thingie
OR	A3,R0,R0
LW	T5,00C4 (SP)
LUI	AT,40A0
MTC1	AT,F0
LBU	T6,0002 (T5)
LUI	AT,4F80
LWC1	F8,0074 (SP)
MTC1	T6,F10
BGEZ	T6,8088ECEC
CVT.S.W	F16,F10
MTC1	AT,F18
NOP
ADD.S	F16,F16,F18
MUL.S	F4,F30,F16
LUI	AT,4040
MTC1	AT,F10
LBU	T7,0003 (T5)
LUI	AT,4130
LWC1	F16,0078 (SP)
ADD.S	F6,F8,F4
MTC1	AT,F8
LUI	AT,4F80
ADD.S	F18,F6,F10
MTC1	T7,F6
SUB.S	F4,F16,F8
ADD.S	F12,F18,F0
BGEZ	T7,8088ED34
CVT.S.W	F10,F6
MTC1	AT,F18
NOP
ADD.S	F10,F10,F18
MUL.S	F16,F30,F10
LUI	AT,4080
MTC1	AT,F6
MFC1	A2,F26
ADDIU	A3,R0,0001
SUB.S	F8,F4,F16
ADD.S	F18,F8,F6
JAL	800E0314	;does a conversion on the current matrix
ADD.S	F14,F18,F0
LUI	T8,DA38
ORI	T8,T8,0003
OR	S0,S1,R0
SW	T8,0000 (S0)
LW	A0,00C0 (SP)
JAL	800E13C4	;subtracts 0x40 from pointer at A0
ADDIU	S1,S1,0008
SW	V0,0004 (S0)
OR	V0,S1,R0
LUI	T9,0C00
ADDIU	T9,T9,0650
SW	T9,0004 (V0)
SW	S5,0000 (V0)
ADDIU	S1,S1,0008
LW	T0,00C0 (SP)
SW	S1,0298 (T0)
LW	RA,006C (SP)
LDC1	F20,0018 (SP)
LDC1	F22,0020 (SP)
LDC1	F24,0028 (SP)
LDC1	F26,0030 (SP)
LDC1	F28,0038 (SP)
LDC1	F30,0040 (SP)
LW	S0,0048 (SP)
LW	S1,004C (SP)
LW	S2,0050 (SP)
LW	S3,0054 (SP)
LW	S4,0058 (SP)
LW	S5,005C (SP)
LW	S6,0060 (SP)
LW	S7,0064 (SP)
LW	S8,0068 (SP)
JR	RA
ADDIU	SP,SP,00C0

8088EDE0
ADDIU	SP,SP,FF98
SW	S2,0040 (SP)
OR	S2,A1,R0
SW	RA,005C (SP)
SW	S8,0058 (SP)
SW	S7,0054 (SP)
SW	S6,0050 (SP)
SW	S5,004C (SP)
SW	S4,0048 (SP)
SW	S3,0044 (SP)
SW	S1,003C (SP)
SW	S0,0038 (SP)
SDC1	F26,0030 (SP)
SDC1	F24,0028 (SP)
SDC1	F22,0020 (SP)
SDC1	F20,0018 (SP)
SW	A0,0068 (SP)
OR	S1,R0,R0
LW	T6,0068 (SP)
LUI	T7,DE00
LUI	T8,0C00
LW	S0,0298 (T6)
OR	V0,S0,R0
ADDIU	T8,T8,1310
SW	T8,0004 (V0)
SW	T7,0000 (V0)
ADDIU	S0,S0,0008
JAL	800E020C	;copy matrix to next 0x40, set as current
NOP
MTC1	R0,F20
LUI	AT,4118
MTC1	AT,F12
LUI	AT,4238
MTC1	AT,F14
MFC1	A2,F20
JAL	800E0314	;does a conversion on the current matrix
ADDIU	A3,R0,0001
LUI	AT,C1B0
MTC1	AT,F26
LUI	AT,C2DC
MTC1	AT,F24
LUI	AT,41B0
SLL	T9,S1,0x9
ADDU	S3,S2,T9
LUI	S5,0C00
LUI	S8,8089
LUI	S7,DB06
LUI	S6,DB06
MTC1	AT,F22
ORI	S6,S6,0020
ORI	S7,S7,0024
ADDIU	S8,S8,FEE0	;S8=8088FEE0: pointer table to 8088FEA0/C0
ADDIU	S5,S5,1340
ADDIU	S3,S3,0020
SW	R0,0064 (SP)
ADDU	S4,S2,S1
OR	S2,R0,R0
OR	V0,S0,R0
SW	S6,0000 (V0)
SW	S3,0004 (V0)
ADDIU	S0,S0,0008
OR	V0,S0,R0
SW	S7,0000 (V0)
LBU	T0,3C20 (S4)
ADDIU	S0,S0,0008
OR	S1,S0,R0
SLL	T1,T0,0x2
ADDU	T2,S8,T1
LW	T3,0000 (T2)
ADDIU	S0,S0,0008
LUI	T4,DA38
SW	T3,0004 (V0)
ORI	T4,T4,0003
SW	T4,0000 (S1)
JAL	800E13C4	;subtracts 0x40 from pointer at A0
LW	A0,0068 (SP)
SW	V0,0004 (S1)
OR	V0,S0,R0
LUI	T5,DE00
SW	T5,0000 (V0)
SW	S5,0004 (V0)
ADDIU	S0,S0,0008
MFC1	A2,F20
MOV.S	F12,F22
MOV.S	F14,F20
JAL	800E0314	;does a conversion on the current matrix
ADDIU	A3,R0,0001
ADDIU	S2,S2,0001
ADDIU	AT,R0,0005
ADDIU	S3,S3,0200
BNE	S2,AT,8088EEC4
ADDIU	S4,S4,0001
MFC1	A2,F20
MOV.S	F12,F24
MOV.S	F14,F26
JAL	800E0314	;does a conversion on the current matrix
ADDIU	A3,R0,0001
LW	T6,0064 (SP)
ADDIU	AT,R0,0006
ADDIU	T7,T6,0001
BNE	T7,AT,8088EEC0
SW	T7,0064 (SP)
JAL	800E0244	;use previous matrix
NOP
LW	T8,0068 (SP)
SW	S0,0298 (T8)
//8088EF88:	return
LW	RA,005C (SP)
LDC1	F20,0018 (SP)
LDC1	F22,0020 (SP)
LDC1	F24,0028 (SP)
LDC1	F26,0030 (SP)
LW	S0,0038 (SP)
LW	S1,003C (SP)
LW	S2,0040 (SP)
LW	S3,0044 (SP)
LW	S4,0048 (SP)
LW	S5,004C (SP)
LW	S6,0050 (SP)
LW	S7,0054 (SP)
LW	S8,0058 (SP)
JR	RA
ADDIU	SP,SP,0068

8088EFC8
ADDIU	SP,SP,FFB8
LUI	AT,4180
MTC1	AT,F12
SW	RA,0014 (SP)
SW	A0,0048 (SP)
SW	A2,0050 (SP)
SW	A3,0054 (SP)
LWC1	F4,0004 (A1)
LWC1	F6,0050 (SP)
LWC1	F16,0054 (SP)
MOV.S	F14,F12
ADD.S	F8,F4,F6
LUI	A2,3F80
OR	A3,R0,R0
SWC1	F8,0044 (SP)
LWC1	F10,0008 (A1)
ADD.S	F18,F10,F16
SWC1	F18,0040 (SP)
LW	T6,0014 (A1)
JAL	800E041C	;another matrix conversion thingie
SW	T6,003C (SP)
LUI	AT,4118
MTC1	AT,F6
LUI	AT,4238
MTC1	AT,F10
LWC1	F4,0044 (SP)
LWC1	F8,0040 (SP)
LUI	A2,430C
ADDIU	A3,R0,0001
ADD.S	F12,F4,F6
JAL	800E0314	;does a conversion on the current matrix
ADD.S	F14,F8,F10
LW	V0,003C (SP)
LUI	AT,8089
LUI	A2,3F80
SLL	V0,V0,0x2
ADDU	AT,AT,V0
LWC1	F12,0060 (AT)
SW	V0,001C (SP)
ADDIU	A3,R0,0001
JAL	800E041C	;another matrix conversion thingie
MOV.S	F14,F12
LW	A0,0048 (SP)
LW	V1,0298 (A0)
OR	A1,V1,R0
LUI	T7,DA38
ORI	T7,T7,0003
SW	T7,0000 (A1)
ADDIU	V1,V1,0008
SW	V1,0030 (SP)
JAL	800E13C4	;subtracts 0x40 from pointer at A0
SW	A1,0028 (SP)
LW	A1,0028 (SP)
LW	V1,0030 (SP)
LUI	T8,FA00
SW	V0,0004 (A1)
OR	V0,V1,R0
ORI	T8,T8,00FF
SW	T8,0000 (V0)
LW	T9,003C (SP)
LUI	T0,8089
LUI	AT,FF00
ADDU	T0,T0,T9
LBU	T0,0018 (T0)
ADDIU	V1,V1,0008
LUI	T6,DE00
ANDI	T1,T0,00FF
SLL	T2,T1,0x10
OR	T4,T2,AT
ORI	T5,T4,FFFF
SW	T5,0004 (V0)
OR	V0,V1,R0
LUI	T7,0C00
ADDIU	T7,T7,0320
SW	T7,0004 (V0)
SW	T6,0000 (V0)
ADDIU	V1,V1,0008
LW	T8,0048 (SP)
SW	V1,0298 (T8)
LW	RA,0014 (SP)
JR	RA
ADDIU	SP,SP,0048

8088F110	print location/resident names for selected location
	accepts: A0=, A1=(float) , A2=(float) , A3=p->resident list
ADDIU	SP,SP,FF88
SW	S4,0070 (SP)
SW	S2,0068 (SP)
MTC1	A1,F12
MTC1	A2,F14
OR	S2,A0,R0
OR	S4,A3,R0	;S4=A3: p->resident list
SW	RA,0074 (SP)
SW	S3,006C (SP)
SW	S1,0064 (SP)
SW	S0,0060 (SP)
SDC1	F26,0058 (SP)
SDC1	F24,0050 (SP)
SDC1	F22,0048 (SP)
SDC1	F20,0040 (SP)
LH	V0,0012 (S4)	;V0=resident+12: image ID
LUI	T7,8089
ADDIU	T7,T7,FF20	;T7=8088FF20: p->image ID entries
SLL	T6,V0,0x3
SUBU	T6,T6,V0
SLL	T6,T6,0x2	;T6=V0*1C: V0->offset
ADDU	S0,T6,T7	;S0=8088FF20+offset: p->image ID entry V0
BEQ	S0,R0,8088F34C
OR	S1,S4,R0	;S1=S4: p->resident list
LWC1	F4,0008 (S0)
LWC1	F16,000C (S0)
LUI	AT,4320
MTC1	AT,F8		;F8=160.0	[43200000]
ADD.S	F6,F4,F12
LW	A1,0014 (S0)	;A1=S0+14: p->string
LUI	AT,42F0
ADD.S	F18,F16,F14
MTC1	AT,F10		;F10=120.0	[42F00000]
LUI	AT,3F40
ADD.S	F24,F6,F8
BEQ	A1,R0,8088F26C	;branch if NULL p->string
SUB.S	F22,F10,F18
//8088F1A4:	print special locations in azure
LW	A2,0018 (S0)	;A2=S0+18: strlen
MTC1	AT,F20		;F20=0.75: [3F400000]
MFC1	A3,F24		;A3=F24: xpos
ADDIU	T8,R0,0078
ADDIU	T9,R0,005F
ADDIU	T0,R0,00CD
ADDIU	T1,R0,00FF
SW	T1,0020 (SP)	;SP+20=FF: alpha
SW	T0,001C (SP)	;SP+1C=CD: blue
SW	T9,0018 (SP)	;SP+18=5F: green
SW	T8,0014 (SP)	;SP+14=78: red
SW	R0,0034 (SP)
SW	R0,0028 (SP)
SW	R0,0024 (SP)
SWC1	F22,0010 (SP)	;SP+10=F22: ypos
OR	A0,S2,R0
SWC1	F20,002C (SP)
JAL	80090E98	;print text to screen
SWC1	F20,0030 (SP)
//8088F1F0:	print "Office" if you just printed "Post"
LUI	T2,8089
ADDIU	T2,T2,FF90	;T2=8088FF90
BNE	S0,T2,8088F34C	;skip if not "Post"
LUI	AT,4140
MTC1	AT,F26
LUI	AT,4190
MTC1	AT,F4
ADD.S	F8,F22,F26
LUI	A1,8089
ADDIU	T3,R0,0078	;T3=78: red
ADD.S	F6,F24,F4
ADDIU	T4,R0,005F	;T4=5F: green
ADDIU	T5,R0,00CD	;T5=CD: blue
ADDIU	T6,R0,00FF	;T6=FF: alpha
MFC1	A3,F6		;A3=F6: xpos
SW	T6,0020 (SP)	;SP+20=FF: alpha
SW	T5,001C (SP)	;SP+1C=CD: blue
SW	T4,0018 (SP)	;SP+18=5F: green
SW	T3,0014 (SP)	;SP+14=78: red
ADDIU	A1,A1,FF0B	;A1=8088FF0B: "Office"
SWC1	F8,0010 (SP)	;SP+10=F8: ypos
OR	A0,S2,R0	;A0=S2: 
ADDIU	A2,R0,0006	;A2=strlen 6
//8088F24C:	print in azure
SW	R0,0024 (SP)
SW	R0,0028 (SP)
SWC1	F20,002C (SP)
SWC1	F20,0030 (SP)
JAL	80090E98	;print text to screen
SW	R0,0034 (SP)
BEQ	R0,R0,8088F350
LW	RA,0074 (SP)
//8088F26C:	loop to print resident names
LH	T7,0010 (S4)	;T7=resident+10: 
OR	S0,R0,R0	;S0=0	init.count
LUI	AT,4140
BLEZL	T7,8088F350	;return on an invalid entry
LW	RA,0074 (SP)
MTC1	AT,F26		;F26=12.0: yoffset per entry	[41400000]
LUI	AT,3F40
MTC1	AT,F20		;F20=0.75: [3F400000]
ADDIU	S3,R0,FFFF
LW	A1,0000 (S1)	;A1=S1+0: p->string
OR	A0,S2,R0	;A0=S2: 
ADDIU	A2,R0,0006	;A2=strlen 6
LB	T8,0006 (A1)	;T8=entry+6: 
ADDIU	T3,R0,00A5
ADDIU	T4,R0,0091
BEQ	S3,T8,8088F300	;print darkened entry if T8 = -1
ADDIU	T5,R0,008C
//8088F2B0:	print in orange
MFC1	A3,F24		;A3=F24: xpos
ADDIU	T9,R0,00FF
ADDIU	T0,R0,004B
ADDIU	T1,R0,0028
ADDIU	T2,R0,00FF
SW	T2,0020 (SP)	;SP+20=FF: alpha
SW	T1,001C (SP)	;SP+1C=28: blue
SW	T0,0018 (SP)	;SP+18=4B: green
SW	T9,0014 (SP)	;SP+14=FF: red
OR	A0,S2,R0
ADDIU	A2,R0,0006	;A2=strlen 6
SWC1	F22,0010 (SP)	;SP+10=F22: ypos
SW	R0,0024 (SP)
SW	R0,0028 (SP)
SWC1	F20,002C (SP)
SWC1	F20,0030 (SP)
JAL	80090E98	;print text to screen
SW	R0,0034 (SP)
BEQ	R0,R0,8088F338
LH	T7,0010 (S4)
//8088F300:	print in brown
MFC1	A3,F24		;A3=F24: xpos
ADDIU	T6,R0,00FF
SW	T6,0020 (SP)	;SP+20=FF: alpha
SWC1	F22,0010 (SP)	;SP+10=F22: ypos
SW	T3,0014 (SP)	;SP+14=A5: red
SW	T4,0018 (SP)	;SP+18=91: green
SW	T5,001C (SP)	;SP+1C=8C: blue
SW	R0,0024 (SP)
SW	R0,0028 (SP)
SWC1	F20,002C (SP)
SWC1	F20,0030 (SP)
JAL	80090E98	;print text to screen
SW	R0,0034 (SP)
//8088F334:	loop for each resident
LH	T7,0010 (S4)
ADDIU	S0,S0,0001	;S0++	count++
ADDIU	S1,S1,0004	;S1+=4	next entry
SLT	AT,S0,T7
BNE	AT,R0,8088F290
ADD.S	F22,F22,F26	;F22+=F26: ycur+yoffset: advance to next line
//8088F34C:	return
LW	RA,0074 (SP)
LDC1	F20,0040 (SP)
LDC1	F22,0048 (SP)
LDC1	F24,0050 (SP)
LDC1	F26,0058 (SP)
LW	S0,0060 (SP)
LW	S1,0064 (SP)
LW	S2,0068 (SP)
LW	S3,006C (SP)
LW	S4,0070 (SP)
JR	RA
ADDIU	SP,SP,0078

8088F37C
ADDIU	SP,SP,FFC8
SW	RA,0014 (SP)
SW	A0,0038 (SP)
LW	T6,0038 (SP)
LUI	T7,DB06
ORI	T7,T7,0030
LW	V1,0298 (T6)
OR	V0,V1,R0
SW	T7,0000 (V0)
LW	T8,0028 (A1)
ADDIU	V1,V1,0008
LUI	AT,8089
SW	T8,0004 (V0)
LW	T9,0038 (A1)
LUI	T2,DB06
ORI	T2,T2,002C
BNE	T9,R0,8088F3EC
OR	V0,V1,R0
LUI	T0,DB06
ORI	T0,T0,002C
OR	V0,V1,R0
SW	T0,0000 (V0)
LUI	T1,8089
LW	T1,405C (T1)
ADDIU	V1,V1,0008
SW	T1,0004 (V0)
BEQ	R0,R0,8088F400
NOP
SW	T2,0000 (V0)
LUI	T3,8089
LW	T3,4060 (T3)
ADDIU	V1,V1,0008
SW	T3,0004 (V0)
LWC1	F12,00DC (AT)
ADDIU	A3,R0,0001
SW	V1,002C (SP)
MFC1	A2,F12
JAL	800E041C	;another matrix conversion thingie
MOV.S	F14,F12
LW	V1,002C (SP)
LUI	T4,DA38
ORI	T4,T4,0003
OR	A1,V1,R0
SW	T4,0000 (A1)
ADDIU	V1,V1,0008
SW	V1,002C (SP)
SW	A1,0018 (SP)
JAL	800E13C4	;subtracts 0x40 from pointer at A0
LW	A0,0038 (SP)
LW	A1,0018 (SP)
LW	V1,002C (SP)
LUI	T5,DE00
SW	V0,0004 (A1)
OR	V0,V1,R0
LUI	T6,0C00
ADDIU	T6,T6,7998
SW	T6,0004 (V0)
SW	T5,0000 (V0)
ADDIU	V1,V1,0008
LUI	AT,4120
MTC1	AT,F12
ADDIU	A3,R0,0001
SW	V1,002C (SP)
MFC1	A2,F12
JAL	800E041C	;another matrix conversion thingie
MOV.S	F14,F12
LW	V1,002C (SP)
LW	T7,0038 (SP)
SW	V1,0298 (T7)
LW	RA,0014 (SP)
JR	RA
ADDIU	SP,SP,0038

8088F49C
ADDIU	SP,SP,FFA8
SW	RA,0014 (SP)
SW	A0,0058 (SP)
LH	A3,0010 (A2)
LW	T6,0058 (SP)
LUI	A0,8089
ADDIU	A0,A0,002C
LW	V1,0298 (T6)
LUI	T7,DB06
ORI	T7,T7,0020
OR	V0,V1,R0
SW	T7,0000 (V0)
LBU	T8,0000 (A1)
LUI	T2,DB06
ADDIU	V1,V1,0008
SLL	T9,T8,0x2
ADDU	T0,A0,T9
LW	T1,0000 (T0)
ORI	T2,T2,0024
ADDIU	AT,R0,0004
SW	T1,0004 (V0)
OR	V0,V1,R0
SW	T2,0000 (V0)
LBU	T3,0001 (A1)
ADDIU	V1,V1,0008
SLL	T4,T3,0x2
ADDU	T5,A0,T4
LW	T6,0014 (T5)
SW	T6,0004 (V0)
BNE	A3,AT,8088F53C
LUI	T7,DB06
ORI	T7,T7,0028
OR	V0,V1,R0
SW	T7,0000 (V0)
LUI	T8,8089
LW	T8,4048 (T8)
ADDIU	V1,V1,0008
SW	T8,0004 (V0)
BEQ	R0,R0,8088F5E8
NOP
ADDIU	AT,R0,0003
BNE	A3,AT,8088F56C
OR	V0,V1,R0
LUI	T9,DB06
ORI	T9,T9,0028
SW	T9,0000 (V0)
LUI	T0,8089
LW	T0,404C (T0)
ADDIU	V1,V1,0008
SW	T0,0004 (V0)
BEQ	R0,R0,8088F5E8
NOP
ADDIU	AT,R0,0001
BNE	A3,AT,8088F59C
OR	V0,V1,R0
LUI	T1,DB06
ORI	T1,T1,0028
SW	T1,0000 (V0)
LUI	T2,8089
LW	T2,4058 (T2)
ADDIU	V1,V1,0008
SW	T2,0004 (V0)
BEQ	R0,R0,8088F5E8
NOP
BNE	A3,R0,8088F5CC
OR	V0,V1,R0
LUI	T3,DB06
ORI	T3,T3,0028
OR	V0,V1,R0
SW	T3,0000 (V0)
LUI	T4,8089
LW	T4,4054 (T4)
ADDIU	V1,V1,0008
SW	T4,0004 (V0)
BEQ	R0,R0,8088F5E8
NOP
LUI	T5,DB06
ORI	T5,T5,0028
SW	T5,0000 (V0)
LUI	T6,8089
LW	T6,4050 (T6)
ADDIU	V1,V1,0008
SW	T6,0004 (V0)
LUI	AT,8089
LWC1	F12,00E0 (AT)
ADDIU	A3,R0,0001
SW	V1,0048 (SP)
MFC1	A2,F12
SW	A1,005C (SP)
JAL	800E041C	;another matrix conversion thingie
MOV.S	F14,F12
LW	V1,0048 (SP)
LUI	T7,DA38
ORI	T7,T7,0003
OR	A1,V1,R0
SW	T7,0000 (A1)
ADDIU	V1,V1,0008
SW	V1,0048 (SP)
SW	A1,0024 (SP)
JAL	800E13C4	;subtracts 0x40 from pointer at A0
LW	A0,0058 (SP)
LW	A1,0024 (SP)
LW	V1,0048 (SP)
LUI	T8,DE00
SW	V0,0004 (A1)
OR	V0,V1,R0
LUI	T9,0C00
ADDIU	T9,T9,79B8
SW	T9,0004 (V0)
SW	T8,0000 (V0)
ADDIU	V1,V1,0008
LUI	AT,4120
MTC1	AT,F12
ADDIU	A3,R0,0001
SW	V1,0048 (SP)
MFC1	A2,F12
JAL	800E041C	;another matrix conversion thingie
MOV.S	F14,F12
JAL	800E020C	;copy matrix to next 0x40, set as current
NOP
LW	T0,005C (SP)
LUI	AT,4F80
LBU	T1,3F4E (T0)
MTC1	T1,F4
BGEZ	T1,8088F6A0
CVT.S.W	F6,F4
MTC1	AT,F8
NOP
ADD.S	F6,F6,F8
LUI	AT,4140
MTC1	AT,F10
LUI	AT,C2C4
MTC1	AT,F18
MUL.S	F16,F6,F10
LUI	AT,4280
MTC1	AT,F14
ADDIU	A2,R0,0000
ADDIU	A3,R0,0001
JAL	800E0314	;does a conversion on the current matrix
ADD.S	F12,F16,F18
LW	V1,0048 (SP)
LUI	T2,DA38
ORI	T2,T2,0003
OR	A1,V1,R0
SW	T2,0000 (A1)
ADDIU	V1,V1,0008
SW	V1,0048 (SP)
SW	A1,001C (SP)
JAL	800E13C4	;subtracts 0x40 from pointer at A0
LW	A0,0058 (SP)
LW	A1,001C (SP)
LW	V1,0048 (SP)
LUI	T3,DE00
SW	V0,0004 (A1)
OR	V0,V1,R0
LUI	T4,0C00
ADDIU	T4,T4,1160
SW	T4,0004 (V0)
SW	T3,0000 (V0)
ADDIU	V1,V1,0008
JAL	800E0244	;use previous matrix
SW	V1,0048 (SP)
LW	V1,0048 (SP)
LW	T5,0058 (SP)
SW	V1,0298 (T5)
LW	RA,0014 (SP)
JR	RA
ADDIU	SP,SP,0058

8088F73C
ADDIU	SP,SP,FFC0
SW	S7,0038 (SP)
SW	S0,001C (SP)
OR	S0,A1,R0
OR	S7,A0,R0
SW	RA,003C (SP)
SW	S6,0034 (SP)
SW	S5,0030 (SP)
SW	S4,002C (SP)
SW	S3,0028 (SP)
SW	S2,0024 (SP)
SW	S1,0020 (SP)
SDC1	F20,0010 (SP)
LH	T6,0012 (S0)
LUI	T8,8089
ADDIU	T8,T8,FF20
SLL	T7,T6,0x3
SUBU	T7,T7,T6
SLL	T7,T7,0x2
ADDU	S5,T7,T8
BEQL	S5,R0,8088F890
LW	RA,003C (SP)
JAL	8088EA34
OR	A0,S0,R0
OR	S6,V0,R0
JAL	800E020C	;copy matrix to next 0x40, set as current
LW	S2,0298 (S7)
MTC1	R0,F20
LWC1	F12,0000 (S5)
LWC1	F14,0004 (S5)
MFC1	A2,F20
JAL	800E0314	;does a conversion on the current matrix
ADDIU	A3,R0,0001
LH	T9,0012 (S0)
OR	S1,R0,R0
LUI	S4,DE00
BNE	T9,R0,8088F7DC
NOP
BEQ	R0,R0,8088F7DC
OR	S1,S0,R0
BLEZ	S6,8088F880
OR	S3,R0,R0
LUI	T0,DA38
ORI	T0,T0,0003
OR	S0,S2,R0
SW	T0,0000 (S0)
ADDIU	S2,S2,0008
JAL	800E13C4	;subtracts 0x40 from pointer at A0
OR	A0,S7,R0
SW	V0,0004 (S0)
BEQ	S1,R0,8088F840
MOV.S	F12,F20
LW	V0,0000 (S1)
BEQL	V0,R0,8088F844
OR	V0,S2,R0
LBU	T1,0007 (V0)
LUI	V1,0C00
ADDIU	V1,V1,0F40
BNE	T1,R0,8088F840
OR	V0,S2,R0
ADDIU	S2,S2,0008
SW	S4,0000 (V0)
SW	V1,0004 (V0)
BEQ	R0,R0,8088F860
ADDIU	S1,S1,0004
OR	V0,S2,R0
SW	S4,0000 (V0)
LW	T2,0010 (S5)
ADDIU	S2,S2,0008
SW	T2,0004 (V0)
BEQL	S1,R0,8088F864
LUI	AT,C140
ADDIU	S1,S1,0004
LUI	AT,C140
MTC1	AT,F14
MFC1	A2,F20
JAL	800E0314	;does a conversion on the current matrix
ADDIU	A3,R0,0001
ADDIU	S3,S3,0001
BNEL	S3,S6,8088F7E8
LUI	T0,DA38
JAL	800E0244	;use previous matrix
NOP
SW	S2,0298 (S7)
//8088F88C:	return
LW	RA,003C (SP)
LDC1	F20,0010 (SP)
LW	S0,001C (SP)
LW	S1,0020 (SP)
LW	S2,0024 (SP)
LW	S3,0028 (SP)
LW	S4,002C (SP)
LW	S5,0030 (SP)
LW	S6,0034 (SP)
LW	S7,0038 (SP)
JR	RA
ADDIU	SP,SP,0040

8088F8BC
ADDIU	SP,SP,FF88
LUI	AT,4180
SW	S1,0054 (SP)
MTC1	AT,F12
OR	S1,A2,R0
SW	RA,005C (SP)
SW	S2,0058 (SP)
SW	S0,0050 (SP)
SDC1	F22,0048 (SP)
SDC1	F20,0040 (SP)
SW	A0,0078 (SP)
SW	A1,007C (SP)
LW	T7,0078 (SP)
LW	T9,0038 (S1)
LW	T6,007C (SP)
LW	T8,002C (T7)
LUI	S2,0001
LUI	T1,8089
ADDU	S2,S2,T8
LW	S2,0808 (S2)
ADDIU	T1,T1,00A8
SLL	T0,T9,0x2
LWC1	F20,0018 (S1)
LWC1	F22,001C (S1)
ADDU	T2,T0,T1	;T2=808900A8+offset: 
LW	S0,0000 (T6)
SW	T2,0064 (SP)
LBU	T3,0001 (S2)
LBU	T6,0000 (S2)
LUI	AT,8000
SLL	T4,T3,0x2
SUBU	T4,T4,T3
SLL	T4,T4,0x3
ADDU	T4,T4,T3
SLL	T7,T6,0x2
SLL	T4,T4,0x2	;T4=T3*0x64 (100): offset to particular table
ADDU	T7,T7,T6
SLL	T7,T7,0x2	;T7=T6*0x14: offset to particular entry
ADDU	T5,S2,T4
ADDU	T8,T5,T7
ADDIU	T9,T8,3CF0	;T9=T8+3CF0: 
SW	T9,0060 (SP)	;T9->SP+60: p->resident list
LW	T0,0028 (S1)
MOV.S	F14,F12
LUI	A2,3F80
ADDU	T1,T0,AT
LUI	AT,8014
SW	T1,58D0 (AT)
JAL	800E041C	;another matrix conversion thingie
OR	A3,R0,R0
MOV.S	F12,F20
MOV.S	F14,F22
LUI	A2,430C
JAL	800E0314	;does a conversion on the current matrix
ADDIU	A3,R0,0001
OR	A0,S0,R0
JAL	8088F37C
OR	A1,S1,R0
OR	A0,S0,R0
JAL	8088EDE0
OR	A1,S2,R0
OR	A0,S0,R0
OR	A1,S2,R0
JAL	8088F49C
LW	A2,0060 (SP)	;A2=SP+60: p->resident list
OR	A0,S0,R0
JAL	8088F73C
LW	A1,0060 (SP)	;A1=SP+60: p->resident list
MFC1	A2,F20
MFC1	A3,F22
OR	A0,S0,R0
JAL	8088EA60
OR	A1,S2,R0
MFC1	A2,F20
MFC1	A3,F22
OR	A0,S0,R0
JAL	8088EFC8
OR	A1,S2,R0
LW	T2,0078 (SP)
LUI	T9,0001
OR	A0,S0,R0
LW	T3,002C (T2)
ADDU	T9,T9,T3
LW	T9,06B4 (T9)
JALR	RA,T9
NOP
LUI	AT,3F80
MTC1	AT,F0
LUI	AT,C308
MTC1	AT,F4
LUI	AT,41D0
MTC1	AT,F8
ADD.S	F6,F20,F4
LUI	AT,4320
MTC1	AT,F16
LUI	AT,42CC
MTC1	AT,F4
ADD.S	F10,F6,F8
LUI	AT,C1E0
MTC1	AT,F8
ADD.S	F6,F22,F4
LUI	AT,42F0
LW	V0,0064 (SP)
ADD.S	F18,F10,F16
MTC1	AT,F16
LBU	A2,3F4E (S2)	;A2=S2+3F4E: strlen
ADD.S	F10,F6,F8
MFC1	A3,F18
LUI	A1,8013
ADDIU	T7,R0,00FF
SUB.S	F18,F16,F10
ADDIU	A1,A1,9E00	;A1=80129E00: p->town.name
LW	A0,007C (SP)	;A0=SP+7C: p->???
SWC1	F18,0010 (SP)	;SP+10=F18: ypos
LBU	T4,0000 (V0)
SW	T4,0014 (SP)	;SP+14=: red
LBU	T6,0001 (V0)
SW	T6,0018 (SP)	;SP+18=: green
LBU	T5,0002 (V0)
SW	R0,0034 (SP)
SW	R0,0028 (SP)
SW	R0,0024 (SP)
SW	T7,0020 (SP)	;SP+20=FF: alpha
SWC1	F0,0030 (SP)
SWC1	F0,002C (SP)
JAL	80090E98	;print text to screen
SW	T5,001C (SP)	;SP+1C=: blue
//8088FAB8:	print label to screen
MFC1	A1,F20
MFC1	A2,F22
LW	A0,007C (SP)
JAL	8088F110	;print location/resident names for selected location
LW	A3,0060 (SP)	;A3=SP+60: p->resident list
//8088FACC:	return
LW	RA,005C (SP)
LDC1	F20,0040 (SP)
LDC1	F22,0048 (SP)
LW	S0,0050 (SP)
LW	S1,0054 (SP)
LW	S2,0058 (SP)
JR	RA
ADDIU	SP,SP,0078

8088FAEC
	accepts: A0=, A1=, A2=
ADDIU	SP,SP,FFE0
SW	RA,0014 (SP)
SW	A1,0024 (SP)
LW	A2,002C (A0)
LUI	AT,0001
ORI	AT,AT,01F0	;AT=0x101F0
ADDU	A2,A2,AT
SW	A2,001C (SP)
SW	A0,0020 (SP)
LW	T9,0010 (A2)
LW	A1,0024 (SP)
JALR	RA,T9
NOP
LW	A0,0020 (SP)
LW	A2,001C (SP)
JAL	8088F8BC
LW	A1,0024 (SP)
//8088FB30:	return
LW	RA,0014 (SP)
ADDIU	SP,SP,0020
JR	RA
NOP

8088FB40
	accepts: A0=p->???
LW	V0,002C (A0)	;V0=A0+2C: 
LUI	AT,0001
ORI	AT,AT,0670	;AT=0x10670: 
LUI	T6,8089
LUI	T7,8089
ADDU	V0,V0,AT
ADDIU	T6,T6,E8E0	;T6=8088E8E0: 
ADDIU	T7,T7,FAEC	;T7=8088FAEC: 
SW	T6,0000 (V0)
SW	T7,0004 (V0)
JR	RA
NOP

8088FB70
ADDIU	SP,SP,FFE0
SW	RA,0014 (SP)
OR	A2,A0,R0
LW	V0,002C (A2)
LUI	AT,0001
ORI	AT,AT,01F0	;AT=0x101F0
ADDU	A0,V0,AT
LUI	AT,0001		;AT=0x10000
ADDU	AT,AT,V0
SW	R0,06A0 (AT)
SW	A2,0020 (SP)
SW	A0,001C (SP)
LW	T6,002C (A2)
LUI	T9,0001		;T9=0x10000
ADDIU	A1,R0,0005
ADDU	T9,T9,T6
LW	T9,06B0 (T9)
JALR	RA,T9
NOP
JAL	800D1A9C
ADDIU	A0,R0,0023
LW	T7,0020 (SP)
LUI	A0,0001		;A0=0x10000
LW	A1,001C (SP)
LW	T8,002C (T7)
ADDU	A0,A0,T8
JAL	8088E430
LW	A0,0808 (A0)
//8088FBE0:	return
LW	RA,0014 (SP)
ADDIU	SP,SP,0020
JR	RA
NOP

8088FBF0	load and prepare resource binaries
	accepts: A0=p->???
ADDIU	SP,SP,FFD0
SW	S0,0018 (SP)
OR	S0,A0,R0
SW	RA,001C (SP)
LUI	A3,0001
LW	V0,002C (S0)
LUI	T7,8089
LUI	AT,0001
ADDU	V1,V0,A3
LW	T6,0808 (V1)
ADDIU	T7,T7,00F0	;T7=808900F0: +2520: next binary
OR	A0,S0,R0
BNE	T6,R0,8088FC98
ADDU	AT,AT,V0
//8088FC28:	load resources to rdram
SW	T7,0808 (AT)
SW	V1,0024 (SP)
SW	V0,002C (SP)
LW	T8,002C (S0)
LUI	AT,0001
ORI	AT,AT,0218	;AT=0x10218
ADDU	T9,T8,A3
LW	T9,06CC (T9)
LUI	A2,8089
ADDIU	A2,A2,00B0	;A2=808900B0: map resource codewords
JALR	RA,T9
ADDU	A1,V0,AT	;A1=V0+AT: @pointer to decompressed data
//8088FC58:	load table to rdram
LW	T0,002C (S0)
LW	V1,0024 (SP)
LUI	T9,0001
ADDU	T9,T9,T0
LW	T9,06CC (T9)
LW	A1,0808 (V1)
LUI	A2,8089
ADDIU	A2,A2,00B8	;A2=808900B8: table codewords
OR	A0,S0,R0	;A0=S0: p->???
JALR	RA,T9
ADDIU	A1,A1,3C40	;A1+=3C40: @pointer to decompressed data
//8088FC84:
LW	V0,002C (SP)
LUI	AT,0001
ORI	AT,AT,01F0	;AT=0x101F0
JAL	8088E940	;convert offsets in binary to pointers
ADDU	A0,V0,AT	;A0=V0+AT: p->???
JAL	8088FB70
OR	A0,S0,R0
JAL	8088FB40
OR	A0,S0,R0
//8088FCA8:	return
LW	RA,001C (SP)
LW	S0,0018 (SP)
ADDIU	SP,SP,0030
JR	RA
NOP

8088FCBC
	accepts: A0=p->???
LW	T6,002C (A0)
LUI	AT,0001
ADDU	AT,AT,T6	;AT=T6+0x10000: 
SW	R0,0808 (AT)
JR	RA
NOP
